package cn.trinea.android.common.util;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 时间格式化
 */
public class TimeUtils {
    /**
     * 自定义时间格式化
     *
     * @param dateStyle 传递进来需要格式化后日期的样式
     * @param s         需要格式化的时间戳
     * @return 格式化后的时间 oushuhua 2016年1月6日
     */
    public static String format(String s, String dateStyle) {
        try {
            long time = Long.parseLong(s);
            SimpleDateFormat format = new SimpleDateFormat(dateStyle);
            Date d = new Date(time);
            String t = format.format(d);
            return t;
        } catch (Exception e) {
            return s;
        }
    }

    /**
     * 以手机当前时间格式化自定义样式
     *
     * @param dateStyle
     * @return
     */
    public static String format(String dateStyle) {
        SimpleDateFormat format = new SimpleDateFormat(dateStyle);
        Date d = new Date(System.currentTimeMillis());
        String t = format.format(d);
        return t;
    }

    public static String format(long s, String dateStyle) {
        try {
            SimpleDateFormat format = new SimpleDateFormat(dateStyle);
            Date d = new Date(s);
            String t = format.format(d);
            return t;
        } catch (Exception e) {
            return String.valueOf(s);
        }
    }

    public static String formatYMD(String s) {
        try {
            long time = Long.parseLong(s);
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            Date d = new Date(time);
            String t = format.format(d);
            return t;
        } catch (Exception e) {
            return s;
        }
    }

    /**
     * 格式化日期与时间
     *
     * @param s
     * @return 样式:10月24日 10:00
     */
    public static String formatYMDHM(String s) {
        try {
            long time = Long.parseLong(s);
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            Date d = new Date(time);
            String t = format.format(d);
            return t;
        } catch (Exception e) {
            return s;
        }
    }

    /**
     * 格式化日期与时间
     *
     * @param s
     * @return 样式:2016-06-15 16:50:30
     */
    public static String formatTime(String s) {
        try {
            long time = Long.parseLong(s);//
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date d1 = new Date(time);
            String t1 = format.format(d1);
            return t1;
        } catch (Exception e) {
            return s;
        }
    }

    /**
     * 格式化日期与时间
     *
     * @param s
     * @return 样式:16:50:30
     */
    public static String formatHMS(String s) {
        try {
            long time = Long.parseLong(s);
            SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
            Date d1 = new Date(time);
            String t1 = format.format(d1);
            return t1;
        } catch (Exception e) {
            return s;
        }
    }

    /**
     * 格式化日期与时间
     *
     * @param s
     * @return 样式:10月24日 10:00
     */
    public static String formatMDHM(String s) {
        try {
            long time = Long.parseLong(s);
            SimpleDateFormat format = new SimpleDateFormat("MM月dd日 HH:mm");
            Date d = new Date(time);
            String t = format.format(d);
            return t;
        } catch (Exception e) {
            return s;
        }
    }

    // 获取当前时间戳
    public static String getTimeStr() {
        // 返回的是从1970-1-1零点开始，到现在的时间距离，单位是毫秒
        return String.valueOf(System.currentTimeMillis());
    }

    //把秒转换成时间
    public static String formatTimemm(long ms) {

        int ss = 1000;
        int mi = ss * 60;
        int hh = mi * 60;
        //int dd = hh * 24;

        //long day = ms / dd;
        /*long hour = (ms - day * dd) / hh;
        long minute = (ms - day * dd - hour * hh) / mi;
        long second = (ms - day * dd - hour * hh - minute * mi) / ss;
        long milliSecond = ms - day * dd - hour * hh - minute * mi - second * ss;*/
        long hour = ms / hh;
        long minute = (ms  - hour * hh) / mi;
        long second = (ms -  hour * hh - minute * mi) / ss;
        long milliSecond = ms -  hour * hh - minute * mi - second * ss;

        //String strDay = day < 10 ? "0" + day : "" + day; //天
        String strHour = hour < 10 ? "0" + hour : "" + hour;//小时
        String strMinute = minute < 10 ? "0" + minute : "" + minute;//分钟
        String strSecond = second < 10 ? "0" + second : "" + second;//秒
        String strMilliSecond = milliSecond < 10 ? "0" + milliSecond : "" + milliSecond;//毫秒
        strMilliSecond = milliSecond < 100 ? "0" + strMilliSecond : "" + strMilliSecond;

        return strHour + " : " + strMinute + " : " + strSecond;
    }
}
